package org.jeecg.modules.wlhy.shipping.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: hy_shipping_note_history
 * @Author: jeecg-boot
 * @Date:   2021-04-30
 * @Version: V1.0
 */
@Data
@TableName("hy_shipping_note_history")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="hy_shipping_note_history对象", description="hy_shipping_note_history")
public class HyShippingNoteHistory implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
	/**运单id*/
	@Excel(name = "运单id", width = 15)
    @ApiModelProperty(value = "运单id")
    private String shippingId;
	/**历史类型(1对账）*/
	@Excel(name = "历史类型(1对账）", width = 15)
    @ApiModelProperty(value = "历史类型(1对账）")
    private String historyType;

    /**运单号*/
    @Excel(name = "运单号", width = 15)
    @ApiModelProperty(value = "运单号")
    private String shippingNoteNumber;
    /**所属货主*/
    @Excel(name = "所属货主", width = 15, dictTable = "hy_customer", dicText = "customer_name", dicCode = "id")
    @Dict(dictTable = "hy_customer", dicText = "customer_name", dicCode = "id")
    @ApiModelProperty(value = "所属货主")
    private String customerId;
    /**所属货源*/
    @Excel(name = "所属货源", width = 15, dictTable = "hy_order", dicText = "order_num", dicCode = "id")
    @Dict(dictTable = "hy_order", dicText = "order_num", dicCode = "id")
    @ApiModelProperty(value = "所属货源")
    private String orderId;
    /**司机*/
    @Excel(name = "司机", width = 15, dictTable = "hy_driver", dicText = "driver_name", dicCode = "id")
    @Dict(dictTable = "hy_driver", dicText = "driver_name", dicCode = "id")
    @ApiModelProperty(value = "司机")
    private String driverId;
    /**车辆*/
    @Excel(name = "车辆", width = 15, dictTable = "hy_vehicle", dicText = "vehicle_number", dicCode = "id")
    @Dict(dictTable = "hy_vehicle", dicText = "vehicle_number", dicCode = "id")
    @ApiModelProperty(value = "车辆")
    private String vehicleId;
    /**实际装载量*/
    @Excel(name = "实际装载量", width = 15)
    @ApiModelProperty(value = "实际装载量")
    private BigDecimal goodsWeightLoading;
    /**实际卸货量*/
    @Excel(name = "实际卸货量", width = 15)
    @ApiModelProperty(value = "实际卸货量")
    private BigDecimal goodsWeightUnloading;
    /**货物实际亏损量*/
    @Excel(name = "货物实际亏损量", width = 15)
    @ApiModelProperty(value = "货物实际亏损量")
    private BigDecimal goodsWeightLoss;
    /**实际运费金额*/
    @Excel(name = "实际运费金额", width = 15)
    @ApiModelProperty(value = "实际运费金额")
    private BigDecimal costPayShipping;
    /**服务费*/
    @Excel(name = "服务费", width = 15)
    @ApiModelProperty(value = "服务费")
    private BigDecimal costService;
    /**亏损金额*/
    @Excel(name = "亏损金额", width = 15)
    @ApiModelProperty(value = "亏损金额")
    private BigDecimal costLoss;
    /**装货凭证图片*/
    @Excel(name = "装货凭证图片", width = 15)
    @ApiModelProperty(value = "装货凭证图片")
    private String imgLoading;
    /**卸货凭证图片*/
    @Excel(name = "卸货凭证图片", width = 15)
    @ApiModelProperty(value = "卸货凭证图片")
    private String imgUnloading;

    /**装货现场图片*/
    @Excel(name = "装货现场图片", width = 15)
    @ApiModelProperty(value = "装货现场图片")
    private String loadingSceneImg;
    /**卸货现场图片*/
    @Excel(name = "卸货现场图片", width = 15)
    @ApiModelProperty(value = "卸货现场图片")
    private String unloadingSceneImg;


    /**运单状态(0待接单 1已接单 2装货中 3运输中 4已交货 5已签收8已作废)*/
    @Excel(name = "运单状态(0待接单 1已接单 2装货中 3运输中 4已交货 5已签收8已作废)", width = 15, dicCode = "shipping_status")
    @Dict(dicCode = "shipping_status")
    @ApiModelProperty(value = "运单状态(0待接单 1已接单 2装货中 3运输中 4已交货 5已签收8已作废)")
    private String shippingStatus;
    /**实际接单时间*/
    @Excel(name = "实际接单时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际接单时间")
    private Date statusDtReceive;
    /**实际发货时间*/
    @Excel(name = "实际发货时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际发货时间")
    private Date statusDtLoading;
    /**实际收货时间*/
    @Excel(name = "实际收货时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际收货时间")
    private Date statusDtUnloading;
    /**实际签收时间*/
    @Excel(name = "实际签收时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "实际签收时间")
    private Date statusDtSign;
    /**运单结算状态(0未对账 1核实中 2已对账 3已支付)*/
    @Excel(name = "运单结算状态(0未对账 1申请对账 2待审核 3审核完成 4已支付  8审核驳回))", width = 15, dicCode = "shipping_pay_status")
    @Dict(dicCode = "shipping_pay_status")
    @ApiModelProperty(value = "运单结算状态(0未对账 1申请对账 2待审核 3审核完成 4已支付  8审核驳回)")
    private String shippingPayStatus;

    @Excel(name = "申请对账时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "申请对账时间")
    private Date payDtSubmitCheck;

    /**运费对账完成时间*/
    @Excel(name = "运费对账完成时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "运费对账完成时间")
    private Date payDtCheck;

    @Excel(name = "申请审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "申请审核时间")
    private Date payDtSubmitAut;

    /**运费支付时间*/
    @Excel(name = "运费对账审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "运费对账审核时间")
    private Date payDtAut;

    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除状态(0-正常,1-已删除)*/
    @Excel(name = "删除状态(0-正常,1-已删除)", width = 15)
    @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    @TableLogic
    private String delFlag;


    /**亏损货物单价*/
    @Excel(name = "亏损货物单价", width = 15)
    @ApiModelProperty(value = "亏损货物单价")
    private BigDecimal lossGoodsUnitPrice;
    /**运费单价*/
    @Excel(name = "运费单价", width = 15)
    @ApiModelProperty(value = "运费单价")
    private BigDecimal shippingUnitPrice;

    @Excel(name = "免赔方式(1吨数2比例)", width = 15, dicCode = "loss_type")
    @Dict(dicCode = "loss_type")
    @ApiModelProperty(value = "免赔方式(1吨数2比例)")
    private java.lang.String lossType;

    /**亏损免赔比例*/
    @Excel(name = "亏损免赔比例", width = 15)
    @ApiModelProperty(value = "亏损免赔比例")
    private BigDecimal lossProportion;

    /**实际运费金额*/
    @Excel(name = "应付运费", width = 15)
    @ApiModelProperty(value = "应付运费")
    private BigDecimal costPay;
    /**亏损金额*/
    @Excel(name = "实付合计", width = 15)
    @ApiModelProperty(value = "实付合计")
    private BigDecimal costPayTotal;

    @Excel(name = "运费支付方式(1按运单结算2代收人结算)", width = 15, dicCode = "pay_type")
    @Dict(dicCode = "pay_type")
    @ApiModelProperty(value = "运费支付方式(1按运单结算2代收人结算)")
    private String payType;
    /**车队长id(按车队长时)*/
    @Excel(name = "车队长id(按车队长时)", width = 15)
    @Dict(dictTable = "hy_carrier", dicText = "carrier_name", dicCode = "id")
    @ApiModelProperty(value = "车队长id(按车队长时)")
    private String carrierId;

    @Excel(name = "公司", width = 15, dictTable = "hy_company", dicText = "company_name", dicCode = "id")
    @Dict(dictTable = "hy_company", dicText = "company_name", dicCode = "id")
    @ApiModelProperty(value = "公司")
    private String companyId;

    @Excel(name = "签收人", width = 15)
    @ApiModelProperty(value = "签收人")
    private String qsr;

    @Excel(name = "对账人", width = 15)
    @ApiModelProperty(value = "对账人")
    private String dzr;

    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    private String shrr;

    @Excel(name = "付款人", width = 15)
    @ApiModelProperty(value = "付款人")
    private String fkr;


    @ApiModelProperty(value = "账期金额")
    private BigDecimal accPeriodAmt;

    @ApiModelProperty(value = "账期支付类型(1余额支付2平台账期)")
    private String accPeriodType;


    @Excel(name = "运费计算方式", width = 15, dicCode = "shipping_type")
    @Dict(dicCode = "shipping_type")
    @ApiModelProperty(value = "运费计算方式(1单价2议价3竞价4包车价)")
    private String shippingType;


}
